<?php

require ("utilities/updateUser.php") ;

// Cas de suppression demandée
if (!empty($_GET['supprimer']) && niveauOK(2))
{
    if ($_POST['confirm'] != "y") printConfirmForm() ;
    else deleteUser($_GET['supprimer'], $supprime);
    return ;
}

// Traitement des données du formulaire
if (!empty($_POST["newPseudo"]))
{
    // ****** Traitement des champs ******
    // Contraintes d'autorisation (on ne peut pas mettre un niveau plus grand que le sien...)
    $params = $_POST ;
    $params['niveau'] = min(intval($params["niveau"]), niveau()) ;
    
    // Caution
    if (strlen($_POST["caution"]) == 10) $params['caution'] = genererDateTime($_POST["caution"]) ;
    else $params['caution'] = "0000-00-00 00:00:00" ;
    
    
    // Inscription ou insertion d'un nouvel utilisateur par un administrateur de niveau 2
    if (empty($_POST['pseudo']))
    {
        // Vérification du pseudo
        $requete = "SELECT pseudo FROM User WHERE pseudo = '{$params['newPseudo']}';" ;
        connect() ;
        $nl = mysql_num_rows(executerRequete($requete, $GLOBALS['debug'])) ;
        mysql_close() ;
        if ($nl > 0) alert ("Ce pseudo est déjà pris !") ;
        elseif (!correctPassword($_POST['password'], $_POST['password2']))
                alert ("Mot de passe incorrect ou erreur de confirmation.") ;
        else
        {
            $params['pseudo'] = $params['newPseudo'] ;
            $params['password'] = md5($params['password']) ; // cryptage du mot de passe
            if (!niveauOK(2))
            {
                $params['niveau'] = 0 ;
                $params['poste'] = "" ;
                $params['caution'] = "0000-00-00 00:00:00" ;
            }
            if (!ajouterUser($params)) alert ("Impossible d'ajouter l'utilisateur \"{$params['newPseudo']}\”.") ;
            else {
                $_GET['pseudo'] = $params['pseudo'] ; $_POST['pseudo'] = null ;
                ?> Vous êtes inscrits ! <a href="index.php?page=accueil">Revenir sur la page d'accueil</a> <?php
                return ;
            }
        }
    }

    // Modification d'un utilisateur par lui-même ou par un administrateur de niveau 2
    // Vérification du droit

    /* A activer si on veut que la page permette l'ajout d'un utilisateur
    else if (empty($_POST["pseudo"]))
    {
        $result = ajouterUser($_POST["newPseudo"], $_POST["password"], $_POST["nom"], $_POST["prenom"], $poste, $niveau, $caution) ;
        if (!$result) alert ("Impossible d'ajouter l'utilisateur.") ;
    }*/
    else
    {
        // Vérification du pseudo
        $requete = "SELECT pseudo FROM User WHERE pseudo = '{$params['newPseudo']}';" ;
        connect() ;
        $nl = mysql_num_rows(executerRequete($requete, $GLOBALS['debug'])) ;
        mysql_close() ;
        if ($nl > 0 && $params['newPseudo'] != $params['pseudo']) alert ("Ce pseudo est déjà pris !") ;
        // Vérification des droits
        elseif (!niveauOK(2) && pseudo() != $params['pseudo'])
        {
            alert ("Vous n'avez pas le droit de modifier l'utilisateur \"{$params['pseudo']}\".") ;
        }
        // Vérification du mot de passe
        elseif ( ($_POST["password"]!="") && // Signifie qu'on veut modifier le mot de passe
                    (
                        !isPasswordCorrect(pseudo(), $_POST["yourPassword"])
                        || !correctPassword($_POST["password"], $_POST["password2"])
                    )
                )
        {
            alert ("Mot de passe incorrect ou erreur de confirmation.") ;
        }
        else
        {

            // Traitement des champs
            if (!niveauOK(2))
            {
                connect() ;
                $result = executerRequete ("SELECT * FROM User WHERE pseudo=\"{$params['pseudo']}\";") ;
                $row = mysql_fetch_assoc($result) ;
                mysql_close() ;
                $params['poste'] = $row['poste'] ;
                $params['niveau'] = $row['niveau'] ;
                $params['caution'] = $row['caution'] ;
            }
            // Cryptage du mot de passe
            if (!empty($params['password'])) $params['password'] = md5($params['password']) ;
            $result = updateUser ($params) ;
            /*if (!empty($params['password']))
                $result = $result && updatePassword($params['pseudo'], md5($params['password'])) ;*/
            if (!$result) alert ("Impossible de modifier l'utilisateur \"".$_POST["pseudo"]."\".") ;
            else {$_GET['pseudo'] = $_POST['newPseudo'] ; $_POST['newPseudo'] = null;}
        }
    }
        
}



// Valeurs par défaut
$default = array() ;
// Cas de valeurs passées en post
if (!empty($_POST['newPseudo']))
{
    $default = $_POST ;
    $default = array_map("stripslashes", array_map("htmlspecialchars", $default)) ;
}
// Valeurs par défaut à partir d'un accès base de donnée
else if (isset($_GET["pseudo"]) && strlen($_GET["pseudo"])>0)
{
    connect() ;
    $result = executerRequete("SELECT * FROM `User` WHERE `pseudo`=\"".$_GET["pseudo"]."\";", $GLOBALS["debug"]) ;
    if (mysql_num_rows($result) > 0)
    {
        $default = mysql_fetch_assoc($result) ;
        $default['pseudo'] = htmlspecialchars($default['pseudo']) ;
        $default['newPseudo'] = ($default['pseudo']) ;
        $default['login_poly'] = htmlspecialchars($default['login_poly']) ;
        $default['nom'] = htmlspecialchars($default['nom']) ;
        $default['prenom'] = htmlspecialchars($default['prenom']) ;
        $default['poste'] = htmlspecialchars($default['poste']) ;
        $default['caution'] = date("d/m/Y", convertirDate($default["caution"])) ;
    }
    else alert ("Utilisateur introuvable !") ;
    mysql_close() ;
}

// Formulaire
//printUserForm($default_pseudo, $default_newPseudo, $default_login_poly, $default_nom, $default_prenom, $default_poste, $default_titrePoste, $default_descriptionPoste, $default_niveauPoste, $default_niveau, $default_caution) ;
printUserForm($default) ;

?>
